package edu.maimonides.ejercicios.ides2.gui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.text.JTextComponent;

import edu.maimonides.ejercicios.ides2.Calculadora;
import edu.maimonides.ejercicios.ides2.CalculadoraException;

public class AccionCalculadora implements ActionListener {

	private JTextComponent val1;
	private JTextComponent val2;
	private CalculadoraView calculadoraView;
	private OperacionCalculadora operacionARealizar;

	public AccionCalculadora(JTextComponent val1, JTextComponent val2, CalculadoraView calculadoraView, OperacionCalculadora operacionARealizar) {
		this.val1 = val1;
		this.val2 = val2;
		this.calculadoraView = calculadoraView;
		this.operacionARealizar = operacionARealizar;

	}

	public void actionPerformed(ActionEvent arg0) {
		try {
			String val1 = this.val1.getText();
			String val2 = this.val2.getText();

			double resultado = this.realizarCalculo(val1, val2);

			this.calculadoraView.mostrarValor(String.valueOf(resultado));
		} catch (CalculadoraException e) {
			this.calculadoraView.mostrarError(e.getMessage());
			e.printStackTrace();
		} catch (Exception e) {
			this.calculadoraView.mostrarError(e.getMessage());
			e.printStackTrace();
		}
	}

	protected double realizarCalculo(String val1, String val2) throws CalculadoraException {
		double valor1 = Double.parseDouble(val1);
		double valor2 = Double.parseDouble(val2);
		return operacionARealizar.realizarOperacion(valor1, valor2);
	}

}
